package jdiy.sample.action;

import net.jdiy.core.*;

/**
 * 与[公司概况]相关的Action.
 */
public class about extends JDiyAction {
    App app = App.get();//取得JDiy App上下文
    Dao dao = app.getDao(); //取得默认的数据库操作DAO对象(DataAccessObject)
    Ls leftNav;//左导航菜单列表

    /**
     * Action:单篇文章显示页面
     */
    public void info() throws Exception {
        this.initLeftNav(); //初始化左导航要循环输出的数据

        String id = app.get("id");//获取当前URL地址传过来的id（会根据该id查询出页面要显示的单篇文章内容）

        if ("y0hg7v5lxd".equals(id) || "y0hg7v5pn8".equals(id)) {
            //y0hg7v5lxd是[企业风采]的id值
            //y0hg7v5pn8是[荣誉资质]的id值.
            //因[公司概况]的这两个子栏目是图片列表展示，所以下面这一行forward到pic.jd这个action上面去了...
            forwardAction("pic.jd");
            return;
        }


        Rs rs;//定义当前页面要显示的单篇文章内容(它是Rs对象，即数据库中的一条记录)
        if ("".equals(id)) {
            rs = leftNav.getItems()[0];//如果没有传id过来，则默认显示公司简介下面的第一个子栏目的内容
        } else {
            rs = dao.rs(new Args("info", "id='" + id + "'"));//否则根据传过来的id查询出要显示的文章内容
        }

        setAttr("info", rs);//将rs对象设置到request请求中(并取名为info)，以便在jsp展现层页面输出.

        forward("/WEB-INF/view/about/info.jsp");//forward到展现层页面．即将request请求转交页面去输出。

    }

    /**
     * Action: 公司概况里面的[企业风采]和[荣誉资质]是图片展示列表页，由此Action处理
     */
    public void pic() {
        this.initLeftNav();  //初始化左导航要循环输出的数据

        String id = app.get("id");//获取URL地址传过来的id（会根据该id查询出对应栏目下的图片列表内容）
        int absPage = app.getInt("page", 1);//从地址栏取得页码(如果没有page页码信息，则默认为第1页)
        Args a = new Args("info", "tid='" + id + "' ORDER BY sort", 8, absPage);//分页查询条件(每页显示８条记录)
        Ls pics = dao.ls(a);//获取记录集列表

        //将相关变量设置到请求流中以便页面上使用：
        setAttr("info", dao.rs(new Args("info", "id='" + id + "'")));//当前的栏目信息(页面标题栏，和[您的位置]两处要用到它)
        setAttr("picLs", pics);//当前页面要输出的图片列表项。

        forward("/WEB-INF/view/about/pic.jsp"); //forward到展现层页面．即将request请求转交页面去输出。
    }

    /**
     * Action: 公司概况里面的图片栏目中点击图片后的明细显示内页.
     */
    public void pic_view(){
        this.initLeftNav(); //初始化左导航要循环输出的数据
        String id = app.get("id"); //获取URL地址传过来的id
        setAttr("info", dao.rs(new Args("info", "id='" + id + "'")));//当前的栏目信息(页面标题栏，和[您的位置]两处要用到它)

        String picId = app.get("picId");//获取要显示的图片id
        Rs pic = dao.rs(new Args("info", "id='"+picId+"'"));//根据该id查询出要显示的记录.
        setAttr("pic", pic);//将要显示的内容设置到请求中，以便在jsp页面中显示它

        forward("/WEB-INF/view/about/pic_view.jsp");//forward到展现层页面．即将request请求转交页面去输出。

    }

    /**
     * 此方法查询出页面左导航的栏目内容，并设置到request请求中. 以便页面上输出
     */
    private void initLeftNav() {
        //查询出［公司简介］栏目下的所有子栏目(for页面左侧的菜单导航输出)．
        // info是数据库表名(由JDiy建站平台后台配置后生成的树型节点表),
        // 后面的条件tid='y0hg7v4vqt'用于查询id=y0hg7v4vqt的这个节点下面的所有子节点(子节点的tid=父节点的id)
        //要查看某个节点的id值，可以在JDiy建站平台的[系统配置]-[数据表管理]中对应的表'节点管理'页面取得．
        leftNav = dao.ls(new Args("info", " tid='y0hg7v4vqt' "));

        setAttr("leftNav", leftNav);//将查询出来的Ls对象设置到request请求中，以便在jsp展现层页面输出.

    }
}
